<?php

require_once( 'classes/orm/storage/DbStorage.php' );

/**
 * Хранилище объектов на основе MySQL базы данных
 * 
 * @author alno
 */
class MySqlStorage extends DbStorage {
	
	/**
	 * Дескриптор соединения
	 */
	var $mysql_link;
	
	/**
	 * Конструктор
	 *
	 * @param string $host хост на котором расположена БД
	 * @param string $login логин
	 * @param string $password пароль
	 * @param string $db имя базы данных
	 * @return MySqlStorage экземпляр объекта
	 */
	function MySqlStorage( $host, $login, $password, $db ) {
		
		// Соединяемся с базой данных
		$this->mysql_link = mysql_connect( $host, $login, $password );
		
		// Выбираем базу данных
		mysql_select_db( $db, $this->mysql_link );		
	}
	
	/**
	 * Установить кодировку соединения с БД
	 *
	 * @param string $enc имя кодировки
	 */
	function setEncoding( $enc ) {
		mysql_query( "SET CHARACTER SET '".$enc."'", $this->mysql_link );
	}
	
	/**
	 * Выполнить SQL запрос
	 *
	 * @param string $sql запрос для выполнения
	 * @return объект запроса
	 */
	function query( $sql ) {
		echo $sql."<br />\n";
		return mysql_query( $sql, $this->mysql_link );
	}
	
	/**
	 * Получить строку из запроса
	 *
	 * @param unknown_type $query объект запроса
	 * @return array строка запроса
	 */
	function fetch( $query ) {
		return mysql_fetch_array( $query );
	}
	
	/**
	 * Получить идентификатор последней записи, сохраненной в БД
	 * @return идентификатор
	 */
	function getInsertedId() {
		return mysql_insert_id( $this->mysql_link );
	}
}

?>